import cv2
import numpy as np

img = cv2.imread('img/erode.jpg', cv2.IMREAD_GRAYSCALE)
img2 = cv2.imread('img/open-close.jpg', cv2.IMREAD_GRAYSCALE)

# _, bz = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
kernel = np.ones((3, 3), dtype=np.uint8)


"""
形态学操作：
cv2.MORPH_ERODE：腐蚀操作。
cv2.MORPH_DILATE：膨胀操作。
cv2.MORPH_OPEN：开运算。
cv2.MORPH_CLOSE：闭运算。
cv2.MORPH_GRADIENT：形态学梯度。
cv2.MORPH_TOPHAT：原图像减去膨胀的图像。
cv2.MORPH_HITMISS：结构元素对应的点集比较。
"""
# 腐蚀
erode = cv2.morphologyEx(img, cv2.MORPH_ERODE, kernel)
# 膨胀
dilate = cv2.morphologyEx(img, cv2.MORPH_DILATE, kernel)
# 开运算， 先腐蚀再膨胀
open = cv2.morphologyEx(img2, cv2.MORPH_OPEN, kernel)
# 闭运算。 先膨胀再腐蚀
close = cv2.morphologyEx(img2, cv2.MORPH_CLOSE, kernel)


cv2.imshow('', erode)
# cv2.imshow('', dilate)
# cv2.imshow('', erode)
# cv2.imshow('', erode)
cv2.waitKey(0)